package com.work.module_base.utils;

import android.text.TextUtils;

import java.text.DecimalFormat;

/**
 * author: Wangzhan
 * data :2018/4/11 0011 14:18
 * version:2.0.0
 * description:保留两位小数的double
 */

public class DoubleUtils {

    public static String getDouble(double d) {
        DecimalFormat fnum = new DecimalFormat("0.00");
        String str = fnum.format(d);
//        dou = (double) Math.round(Double.parseDouble(str) * 100) / 100;
        return str;
    }

    //保留两位小数(四舍五入)
    public static String getStrDouble(String rateStr) {

        if (!TextUtils.isEmpty(rateStr)) {
            double d = Double.parseDouble(rateStr);
//            String result = String.format("%.2f", d);
            String result = calculateProfit(d);
            return result;
        }
        return "0.00";
    }


    //保留9位小数
    public static String getString9(String sss) {
        if (!TextUtils.isEmpty(sss)) {
            double d = Double.parseDouble(sss);
            String result = String.format("%.9f", d);
            return result;
        }
        return "0.000000000";
    }


    /**
     * 保留double类型小数后两位，不四舍五入，直接取小数后两位 比如：10.1269 返回：10.12
     *
     * @param doubleValue
     * @return
     */
    public static String calculateProfit(double doubleValue) {
        // 保留4位小数
        DecimalFormat df = new DecimalFormat("#.0000");
        String result = df.format(doubleValue);

        // 截取第一位
        String index = result.substring(0, 1);

        if (".".equals(index)) {
            result = "0" + result;
        }

        // 获取小数 . 号第一次出现的位置
        int inde = firstIndexOf(result, ".");

        // 字符串截断
        return result.substring(0, inde + 3);
    }

    /**
     * 查找字符串pattern在str中第一次出现的位置
     *
     * @param str
     * @param pattern
     * @return
     */
    public static int firstIndexOf(String str, String pattern) {
        for (int i = 0; i < (str.length() - pattern.length()); i++) {
            int j = 0;
            while (j < pattern.length()) {
                if (str.charAt(i + j) != pattern.charAt(j))
                    break;
                j++;
            }
            if (j == pattern.length())
                return i;
        }
        return -1;
    }
}

